package act.droidcar;

import com.droidcar.CombustivelBD;
import com.droidcar.ContatoBD;
import com.droidcar.CorBD;
import com.droidcar.DataBaseCreate;
import com.droidcar.FavoritosDB;
import com.droidcar.IniciaBancoBD;
import com.droidcar.KmBD;
import com.droidcar.ListaContatosBD;
import com.droidcar.ListaVeiculosBD;
import com.droidcar.MarcaBD;
import com.droidcar.ModeloBD;
import act.droidcar.R;
import com.droidcar.VeiculosBD;

import android.app.Activity;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

/**
 * 
 *Activity principal do sistema
 *Possui acesso a todas as funções.
 *Faz a inicialização do banco de dados.
 */    
public class MenuPrincipal extends Activity {
    
	private KmBD		  oKm;
	private CombustivelBD oCombustivel;
	private ContatoBD 	  oContato;
	private CorBD 		  oCor;
	private MarcaBD 	  oMarca;
	private ModeloBD  	  oModelo;
	private VeiculosBD	  oVeiculo;
	private FavoritosDB   oFavoritos;
	private IniciaBancoBD inicia;
	
	private Intent pesquisar;	
	private Intent comparar;
	private Intent veiculos;
	private Intent propostas; 	
	
		
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);
        
        iniciaTabelasBanco();
        inicializarComponentes();
	
    }
    

	/**
	 *Faz a inicialização dos objetos de dados.
	 *Faz a chamada para as funções de inicializacao da base.
	 */         
    public void iniciaTabelasBanco(){
  	
    	
    	DataBaseCreate baseDados = new DataBaseCreate(this);
		SQLiteDatabase objDados  = baseDados.retornaBaseDados();
		
		inicia = new IniciaBancoBD(baseDados,objDados);
		
        
        oKm 			= new KmBD(objDados);
        oCombustivel	= new CombustivelBD(objDados); 
        oContato		= new ContatoBD(objDados);
        oCor			= new CorBD(objDados);
        oMarca			= new MarcaBD(objDados);
        oModelo			= new ModeloBD(objDados);        
        oFavoritos		= new FavoritosDB(objDados);
        oContato.DROP_TABELA();
        /*
        oCombustivel.DROP_TABELA();
        
        oCor.DROP_TABELA();
        oKm.DROP_TABELA();
        oMarca.DROP_TABELA();
        oModelo.DROP_TABELA();
        oFavoritos.DROP_TABELA();*/
        
        
        inicia.GerandoDados(oCombustivel, oContato, oCor, oKm, oMarca, oModelo, oVeiculo, oFavoritos);   
    	
    }
    
	/**
	 * Inicilização de componentes e eventos.
	 */    
    public void inicializarComponentes(){

    	
    	Button btnAbrirTelaVeiculo;
    	Button btnAbrirTelaComparacao;
    	Button btnAbrirTelaFavoritos;
    	Button btnAbrirTelaPropostas;
    	Button btnSair;    	
    	
    	btnAbrirTelaVeiculo 		= (Button) findViewById(R.botao.abrirPesquisarVeiculo);
    	btnAbrirTelaComparacao		= (Button) findViewById(R.botao.abrirCompararVeiculos);
    	btnAbrirTelaFavoritos		= (Button) findViewById(R.botao.abrirFavoritos);
    	btnAbrirTelaPropostas		= (Button) findViewById(R.botao.abrirPropostasEnviadas);
    	btnSair						= (Button) findViewById(R.botao.Sair);
    	
    	btnAbrirTelaPropostas.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   			
    	        
    			
    				propostas = new Intent(MenuPrincipal.this,ListaContatos.class);
    			
    			ListaContatosBD obj = new ListaContatosBD();
    			obj.addLista(oContato.retornaListaContatos());
    			
    			propostas.putExtra("ListaContatos", obj);     			
    			
    	        MenuPrincipal.this.startActivity(propostas);
    		
    		}   		
    		
    		
    	});
    	
    	
    	btnAbrirTelaVeiculo.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   			
    	        
    			if(pesquisar == null)
    				pesquisar = new Intent(MenuPrincipal.this,TelaPesquisar.class);    			
    	        MenuPrincipal.this.startActivity(pesquisar);
    		
    		}   		
    		
    		
    	});
    	
    	    	
    	btnAbrirTelaFavoritos.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {   	
    			    			
    	        
    			if(veiculos == null)
    				veiculos = new Intent(MenuPrincipal.this,ListarVeiculos.class);
    			ListaVeiculosBD obj = new ListaVeiculosBD();
    			obj.addLista(oFavoritos.retornaListaFavoritos());
    			
    			veiculos.putExtra("ListaVeiculos", obj); 
    			veiculos.putExtra("Tipo", 1); 
    			MenuPrincipal.this.startActivity(veiculos);   			
    					    			
    	        
    		
    		}   		
    		
    		
    	}); 
    	
    	btnSair.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {
    			finish();    		
    		}
    		
    	}); 
    	
    	btnAbrirTelaComparacao.setOnClickListener(new View.OnClickListener(){
    		
    		public void onClick(View arg0) {
    			
    			if(comparar == null)
    				comparar = new Intent(MenuPrincipal.this,TelaComparar.class);
    			
    			ListaVeiculosBD obj = new ListaVeiculosBD();
    			obj.addLista(oFavoritos.retornaListaFavoritos());    			
    			comparar.putExtra("ListaVeiculos", obj);
    			
    	        MenuPrincipal.this.startActivity(comparar);
    			
    		}
    		
    	}); 
    	
    	
    	
    }
    
    
    	
}